import pandas as pd

#——————自定义函数区域————————

#根据人员姓名映射对应单位名称
def CompanyMap(PersonName):
    dic = {
        "官欣":"市工程",
        "宋选超":"中通",
        "黄雄辉":"省工程",
        "黎绍金":"长讯"
    }
    return dic[PersonName]

#导入表格
df = pd.read_excel('人效统计-工程验收（6月份）.xlsx')
#筛选出需要的列
df = df[['工程流水号', '工程编号', '环节名称', '环节处理时间', '环节处理人']]
#筛选出需要的行
df = df.query("(环节名称=='资源系统验收' or 环节名称=='现场验收') and (环节处理人=='官欣' or 环节处理人=='宋选超' or 环节处理人=='黄雄辉' or 环节处理人=='黎绍金')")
#插入并填充归属单位列
df.insert(4, '单位', 0)
df['单位'] = df['环节处理人'].apply(lambda x:CompanyMap(x))
#从【环节处理时间】分理出年-月
df['环节处理时间'] = df['环节处理时间'].astype(str).apply(lambda x:'-'.join(x.split('-')[0:2]))
#修改‘资源系统验收’为 '系统验收'
df.loc[df['环节名称']=='资源系统验收','环节名称'] = '系统验收'
#加入分值列
df.insert(5, '工单数量', 1)
#加入工单数量列
df.insert(6, '分值', 0.2)
#生成统计表
df['工单数量'] = df['工单数量'].astype(int)
df['分值'] = df['分值'].astype(float)
df1 = df.groupby(['环节处理时间', '单位', '环节处理人', '环节名称']).sum(numeric_only=True)
df2 = df.groupby(['环节处理人']).sum(numeric_only=True)
#输出为Excel
with pd.ExcelWriter('资源验收工单统计.xlsx') as writer:
    df.to_excel(writer, sheet_name='清单', index=False)
    df1.to_excel(writer, sheet_name='统计1')
    df2.to_excel(writer, sheet_name='统计2')